package question09;

/**
 * @author yuan
 * @date 2021/12/14
 */
// 高消耗

/**
 * 问题：
 *      判断一个数是否是回文整数
 * 思路：
 *      1、负数翻转后由于符号问题，所以不可能是回文整数
 *      2、StringBuilder 具有 reverse 方法可以实现字符串的翻转
 *      3、创建 StringBuilder，通过构造函数将 数传入，通过 toString 方法得到反转后的字符串
 *      4、利用 equals 方法与源字符串进行比较，如果相同则为回文整数
 */
public class Solution {
    public static void main(String[] args) {

        System.out.println(new Solution().isPalindrome(121));
        System.out.println(new Solution().isPalindrome(-121));
        System.out.println(new Solution().isPalindrome(10));
        System.out.println(new Solution().isPalindrome(-101));
    }

    /**
     * 判断一个数是否是回文整数
     * @param x
     * @return
     */
    public boolean isPalindrome(int x) {

        // 所有的负数都不是回文整数
        if (x < 0) return false;
        String str = x + "";
        StringBuilder stringBuilder = new StringBuilder(str);
        StringBuilder reverseStr = stringBuilder.reverse();
        return str.equals(reverseStr.toString());
    }
}
